package com.note.config;

import com.note.constant.ServiceNameConstants;
import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClient;
import org.springframework.context.annotation.Configuration;

/**
 * 负载均衡器配置类，用于将自定义的负载均衡器配置与特定服务关联。
 * <p>
 * 通过使用 Spring Cloud 的 {@link LoadBalancerClient} 注解，将自定义的负载均衡器配置类（RandomLoadBalancerConfig）
 * 与指定的服务名称（通过 {@link ServiceNameConstants#BUSINESS_SERVICE} 指定）绑定。
 * 这样，当 Spring 容器启动时，会自动应用这个自定义的负载均衡策略。
 * <p>
 * 对于未配置自定义负载均衡器的服务，Spring Cloud LoadBalancer 将使用默认的负载均衡策略。默认情况下，它会采用
 * {@link RoundRobinLoadBalancer}（轮询负载均衡器），按照顺序依次选择服务实例。如果需要为其他服务指定不同的负载均衡策略，
 * 可以通过类似的方式为它们创建并绑定自定义负载均衡器配置类。
 *
 * @author yuhuan
 * @date 2025/3/21
 */
@Configuration
@LoadBalancerClient(name = ServiceNameConstants.BUSINESS_SERVICE, configuration = RandomLoadBalancerConfig.class)
public class LoadBalancerConfigurations {
}
